
#ifndef FELIX_H_
#define FELIX_H_

using namespace std;

#include "../IncludesServidor.h"
#include "../defines.h"
#include "Elemento.h"

class Felix : public Elemento {
private:
	unsigned short int vidas;
	unsigned short int posVidrio;
	unsigned long  int puntos;
	bool inmune;
public:
	/* Constructor */
	Felix(unsigned short int id,unsigned short int idImagen, int posX, int posY, int alto, int ancho, unsigned char tipo, bool vivo, unsigned short int vidas, unsigned short int posVidrio, int puntos);
	/* Destructor */
	~Felix();

	/* Getters */
	unsigned short int getPosVidrio();
	bool isInmune();
	unsigned short int getVidas();
	int getPuntos();

	/* Setters */
	void setInmune(bool inmune);
	void setPosVidrio(unsigned short int posVidrio);

	/* Metodo de creacion */
	unsigned short int aparecer();
	/* Metodo de destruccion */
	unsigned short int desaparecer();
	/* Metodo de reparacion de ventana. */
	void reparar();
	/* Metodo de consumicion de tortas */
	unsigned short int consumirTorta();
	/* Pisa el metodo moverse del elemento estandar, para cambiar el vidrio tambien */
	void moverse(int offsetX, int offsetY);
	/* Metodo para quitarle una vida a felix */
	void restarVida();
	//Suma puntos por ventana arreglada o torta tomada.
	unsigned short int sumarPuntos(int puntos);
};

#endif /* FELIX_H_ */
